package com.swsc.solarverse.dao.entity.analysis;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.swsc.solarverse.dao.entity.base.AssignBaseLongIdDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author AutoGenerator
 * @since 2024-06-04
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("solar_string_efficiency_record")
public class StringEfficiencyRecordDO extends AssignBaseLongIdDO {


    @TableField("tenant_no")
    private Integer tenantNo;

    @TableField("organ_no")
    private Integer organNo;

    /**
     * 上级设备id
     */
    @TableField("device_pid")
    private Long devicePid;

    /**
     * 设备id
     */
    @TableField("device_id")
    private Long deviceId;

    @TableField("device_name")
    private String deviceName;

    /**
     * 设备编码
     */
    @TableField("device_code")
    private String deviceCode;

    /**
     * 数据时间
     */
    @TableField("data_time")
    private LocalDateTime dataTime;

    /**
     * 能效/日发电量
     */
    @TableField("efficiency")
    private Double efficiency;

    /**
     * 子阵平均能效/发电量
     */
    @TableField("submatrix_avg_e")
    private Double submatrixAvgE;

    /**
     * 子阵组串数量
     */
    @TableField("submatrix_string_num")
    private Integer submatrixStringNum;

    @TableField("submatrix_string_valid_num")
    private Integer submatrixStringValidNum;

    /**
     * 损失电量比例
     */
    @TableField("loss_e")
    private Double lossE;

    /**
     * 子阵
     */
    @TableField("submatrix")
    private String submatrix;

    /**
     * 分区/子阵(冗余)
     */
    @TableField("zone")
    private String zone;

    @TableField("create_time")
    private LocalDateTime createTime;

    @TableField("exinvalid")
    private Byte exinvalid;

    public StringEfficiencyRecordDO() {
    }

    public StringEfficiencyRecordDO(Integer tenantNo, Integer organNo, Long devicePid, Long deviceId, String deviceName, String deviceCode, LocalDateTime dataTime, Double efficiency, Integer submatrixStringNum, String submatrix, String zone, LocalDateTime createTime) {
        this.tenantNo = tenantNo;
        this.organNo = organNo;
        this.devicePid = devicePid;
        this.deviceId = deviceId;
        this.deviceName = deviceName;
        this.deviceCode = deviceCode;
        this.dataTime = dataTime;
        this.efficiency = efficiency;
        this.submatrixStringNum = submatrixStringNum;
        this.submatrix = submatrix;
        this.zone = zone;
        this.createTime = createTime;
    }

    public StringEfficiencyRecordDO(Integer tenantNo, Integer organNo, Long devicePid, Long deviceId, String deviceName, String deviceCode, LocalDateTime dataTime, Double efficiency, Double submatrixAvgE, Integer submatrixStringNum, Double lossE, String submatrix, String zone, LocalDateTime createTime) {
        this.tenantNo = tenantNo;
        this.organNo = organNo;
        this.deviceName = deviceName;
        this.deviceCode = deviceCode;
        this.devicePid = devicePid;
        this.deviceId = deviceId;
        this.dataTime = dataTime;
        this.efficiency = efficiency;
        this.submatrixAvgE = submatrixAvgE;
        this.submatrixStringNum = submatrixStringNum;
        this.lossE = lossE;
        this.submatrix = submatrix;
        this.zone = zone;
        this.createTime = createTime;
    }
}
